package com.gqj.elec.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 物资入库详情对象 elec_material_inDetail
 *
 * @author lxq
 * @date 2023-12-17
 */
public class ElecMaterialIndetail extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * 物资编码
     */
    @Excel(name = "物资编码")
    @ApiModelProperty("物资编码")
    private String materialCode;

    /**
     * 物资名称
     */
    @Excel(name = "物资名称")
    @ApiModelProperty("物资名称")
    private String materialName;

    /**
     * 归还人
     */
    @Excel(name = "归还人")
    @ApiModelProperty("归还人")
    private String createBy;

    /**
     * 归还时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("inDate")
    private Date inDate;

    /**
     * 分类
     */
    @Excel(name = "分类")
    @ApiModelProperty("分类")
    private String sortName;
    /**
     * 库房
     */
    @Excel(name = "库房")
    @ApiModelProperty("库房")
    private String warehouseName;

    /**
     * 柜架
     */
    @Excel(name = "柜架")
    @ApiModelProperty("柜架")
    private String cabinetName;

    /**
     * 供应商
     */
    @Excel(name = "供应商")
    @ApiModelProperty("供应商")
    private String providerName;
    /**
     * 主键ID
     */
    private Long indetailId;

    /**
     * 入库ID
     */
    @ApiModelProperty("入库ID")
    private Long inId;

    /**
     * 物资ID
     */
    @ApiModelProperty("物资ID")
    private Long materialId;

    /**
     * 入库重量
     */
    private BigDecimal inWeight;

    private Integer inNumber;

    /**
     * 是否入库 1-已入库 0-未入库
     */
    @ApiModelProperty("是否入库 1-已入库 0-未入库")
    private String isIn;

    private String inDateStr;

    /**
     * 规格型号
     */
    @ApiModelProperty("规格型号")
    private String specifications;

    /**
     * 分类ID
     */
    private Long sortId;

    /**
     * 库房ID
     */
    private Long warehouseId;


    /**
     * 柜架ID
     */
    private Long cabinetId;

    /**
     * 层位ID
     */
    private Long gridId;

    /**
     * 层位
     */
    @ApiModelProperty("层位")
    private String gridName;

    /**
     * 单位ID
     */
    private Long unitId;

    /**
     * 单位
     */
    @ApiModelProperty("单位")
    private String unitName;

    /**
     * 供应商ID
     */
    private Long providerId;

    /**
     * 物资类别
     */
    private String materialCategory;

    /**
     * 采购日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("采购日期")
    private Date purchaseDate;

    /**
     * 单品重量
     */
    private BigDecimal singleWeight;

    /**
     * 总重量
     */
    private BigDecimal totalWeight;

    /**
     * 备件类型 1-RFID 2-称重
     */
    private String sparePartType;
    /**
     * 物资状态 1-在库可领用 0-出库待归还
     */
    @ApiModelProperty("")
    private String materialStatus;

    public String getMaterialStatus() {
        return materialStatus;
    }

    public void setMaterialStatus(String materialStatus) {
        this.materialStatus = materialStatus;
    }

    @Override
    public String getCreateBy() {
        return createBy;
    }

    @Override
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getInDateStr() {
        return inDateStr;
    }

    public void setInDateStr(String inDateStr) {
        this.inDateStr = inDateStr;
    }

    public void setIndetailId(Long indetailId) {
        this.indetailId = indetailId;
    }

    public Integer getInNumber() {
        return inNumber;
    }

    public void setInNumber(Integer inNumber) {
        this.inNumber = inNumber;
    }

    public Long getIndetailId() {
        return indetailId;
    }

    public void setInId(Long inId) {
        this.inId = inId;
    }

    public Long getInId() {
        return inId;
    }

    public void setMaterialId(Long materialId) {
        this.materialId = materialId;
    }

    public Long getMaterialId() {
        return materialId;
    }

    public void setInWeight(BigDecimal inWeight) {
        this.inWeight = inWeight;
    }

    public BigDecimal getInWeight() {
        return inWeight;
    }

    public void setIsIn(String isIn) {
        this.isIn = isIn;
    }

    public String getIsIn() {
        return isIn;
    }

    public void setInDate(Date inDate) {
        this.inDate = inDate;
    }

    public Date getInDate() {
        return inDate;
    }

    public String getMaterialCode() {
        return materialCode;
    }

    public void setMaterialCode(String materialCode) {
        this.materialCode = materialCode;
    }

    public String getMaterialName() {
        return materialName;
    }

    public void setMaterialName(String materialName) {
        this.materialName = materialName;
    }

    public String getSpecifications() {
        return specifications;
    }

    public void setSpecifications(String specifications) {
        this.specifications = specifications;
    }

    public Long getSortId() {
        return sortId;
    }

    public void setSortId(Long sortId) {
        this.sortId = sortId;
    }

    public String getSortName() {
        return sortName;
    }

    public void setSortName(String sortName) {
        this.sortName = sortName;
    }

    public Long getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(Long warehouseId) {
        this.warehouseId = warehouseId;
    }

    public String getWarehouseName() {
        return warehouseName;
    }

    public void setWarehouseName(String warehouseName) {
        this.warehouseName = warehouseName;
    }

    public Long getCabinetId() {
        return cabinetId;
    }

    public void setCabinetId(Long cabinetId) {
        this.cabinetId = cabinetId;
    }

    public String getCabinetName() {
        return cabinetName;
    }

    public void setCabinetName(String cabinetName) {
        this.cabinetName = cabinetName;
    }

    public Long getGridId() {
        return gridId;
    }

    public void setGridId(Long gridId) {
        this.gridId = gridId;
    }

    public String getGridName() {
        return gridName;
    }

    public void setGridName(String gridName) {
        this.gridName = gridName;
    }

    public Long getUnitId() {
        return unitId;
    }

    public void setUnitId(Long unitId) {
        this.unitId = unitId;
    }

    public String getUnitName() {
        return unitName;
    }

    public void setUnitName(String unitName) {
        this.unitName = unitName;
    }

    public Long getProviderId() {
        return providerId;
    }

    public void setProviderId(Long providerId) {
        this.providerId = providerId;
    }

    public String getProviderName() {
        return providerName;
    }

    public void setProviderName(String providerName) {
        this.providerName = providerName;
    }

    public String getMaterialCategory() {
        return materialCategory;
    }

    public void setMaterialCategory(String materialCategory) {
        this.materialCategory = materialCategory;
    }

    public Date getPurchaseDate() {
        return purchaseDate;
    }

    public void setPurchaseDate(Date purchaseDate) {
        this.purchaseDate = purchaseDate;
    }

    public BigDecimal getSingleWeight() {
        return singleWeight;
    }

    public void setSingleWeight(BigDecimal singleWeight) {
        this.singleWeight = singleWeight;
    }

    public BigDecimal getTotalWeight() {
        return totalWeight;
    }

    public void setTotalWeight(BigDecimal totalWeight) {
        this.totalWeight = totalWeight;
    }

    public String getSparePartType() {
        return sparePartType;
    }

    public void setSparePartType(String sparePartType) {
        this.sparePartType = sparePartType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("indetailId", getIndetailId())
                .append("inId", getInId())
                .append("materialId", getMaterialId())
                .append("inWeight", getInWeight())
                .append("isIn", getIsIn())
                .append("inDate", getInDate())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
